﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuanLyThietBi.DAL.Models;

namespace QuanLyThietBi.DAL
{
    public class NhanVienDAO
    {
        public List<NHANVIEN> GetAllNhanVien()
        { 
            List<NHANVIEN> dsNhanVien = null;
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    var ds = from tb in en.NHANVIENs
                             select tb;
                    if (ds != null)
                    {
                        dsNhanVien = ds.ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return dsNhanVien;
        }

        public NHANVIEN GetNhanVienByID (int nhanvienid)
        {
            NHANVIEN nhanvien = null;
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    var dsnhanvien = from nv in en.NHANVIENs
                                     where nv.id == nhanvienid
                                     select nv;
                    if (dsnhanvien != null)
                    {
                        nhanvien = dsnhanvien.FirstOrDefault();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return nhanvien;
        }

        public List<NHANVIEN> GetNhanVienByPhongBan(int phongBanId)
        {
            List<NHANVIEN> dsNhanVien = null;
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    var ds = from tb in en.NHANVIENs
                             where tb.phong_ban == phongBanId
                             select tb;
                    if (ds != null)
                    {
                        dsNhanVien = ds.ToList();
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return dsNhanVien;
        }

        public int SaveNhanVien(NHANVIEN nv)
        {
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    en.NHANVIENs.AddObject(nv);
                    return en.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                return 0;
            }
        }

        public int UpdateNhanVien(NHANVIEN nv)
        {
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    //Lấy lên cái thiết bị dưới database
                    var tbupdate = en.NHANVIENs.First(t => t.id == nv.id);

                    //update thong tin mới
                    tbupdate.ten_day_du = nv.ten_day_du;
                    tbupdate.phong_ban = nv.phong_ban;

                    return en.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                return 0;
            }
        }

        public List<NHANVIEN> GetNhanVienForSearch(string tennhanvien)
        {
            List<NHANVIEN> dsNhanVien = null;
            try
            {
                using (var en = new QuanLyThietBiEntities())
                {
                    var ds = from tb in en.NHANVIENs
                             where tb.ten_day_du.Contains(tennhanvien)
                             select tb;
                    if (ds != null)
                    {
                        dsNhanVien = ds.ToList();
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return dsNhanVien;
        }
    }
}
